home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / gramis / gramis.bas next >
BASIC Source File  |  1994-12-01  |  14KB  |  433 lines

  1. 10010 '--------------------------------------------------------------------
  2. 10020 '
  3. 10030 '    GRAMIS
  4. 10040 '
  5. 10050 '                                              Copyright (C) TeC 1994
  6. 10060 '--------------------------------------------------------------------
  7. 10070 MOUSE 0
  8. 10080 SCREEN 0: SCREEN@ 1: COLOR 7,,,4
  9. 10090 WINDOW(0,0)-(319,239): VIEW(0,0)-(319,239): CLS
  10. 10100 DEFINT A-Z
  11. 10110 RANDOMIZE DATE*100000+TIME
  12. 10120 ON ERROR GOTO *SYSERR
  13. 10130 DIM F(321,241),TIFF(76800)
  14. 10140 WIDTH 80,20: CONSOLE 0,19,2: WAIT 100
  15. 10150 *設定
  16. 10160 J=0: MOJI$="GRAMIS  --[ 32768 colors  320×240 dots ]--": W=10
  17. 10170 GOSUB *PRINTER
  18. 10180 J=1: MOJI$="Copyright (C) TeC 1994": W=50
  19. 10190 GOSUB *PRINTER
  20. 10200 J=4: MOJI$="設定をします. [ ]内の数字キーを押してください.": W=50
  21. 10210 GOSUB *PRINTER
  22. 10220 J=6: MOJI$=" i) 基本色の設定  [ 1:単色  2:ランダム多色 ]": W=1
  23. 10230 GOSUB *PRINTER
  24. 10240 WHILE INKEY$><"": WEND: IN$=""
  25. 10250 WHILE IN$="": IN$=INKEY$: WEND
  26. 10260 IN=VAL(IN$) 
  27. 10270 IF IN=0 OR 3<IN THEN 10240
  28. 10280 IF IN=3 THEN END
  29. 10290 IF IN=1 THEN
  30. 10300    MODE=1
  31. 10310    COLOR 4
  32. 10320    J=7: MOJI$="    単色": W=10
  33. 10330    GOSUB *PRINTER
  34. 10340    COLOR 7
  35. 10350    MOJI$="    ↑↓で色の成分を指定後、←→で調整."
  36. 10360    J=8: W=1:GOSUB *PRINTER
  37. 10370    J=9: MOJI$="    実行キーで決定.": W=1: GOSUB *PRINTER
  38. 10380    G=GB: R=RB: B=BB
  39. 10390    LOCATE 6,10: PRINT USING "* 緑成分 ##";G
  40. 10400    LINE(81,120)-STEP(30,8),PSET,[31,0,0],BF
  41. 10410    LOCATE 6,11: PRINT USING "  赤成分 ##";R
  42. 10420    LINE(81,132)-STEP(30,8),PSET,[0,31,0],BF
  43. 10430    LOCATE 6,12: PRINT USING "  青成分 ##";B
  44. 10440    LINE(81,144)-STEP(30,8),PSET,[0,0,31],BF
  45. 10450    LINE(71,120)-STEP(8,8),PSET,[G*8,0,0],BF
  46. 10460    LINE(71,132)-STEP(8,8),PSET,[0,R*8,0],BF
  47. 10470    LINE(71,144)-STEP(8,8),PSET,[0,0,B*8],BF
  48. 10480    IF 0<G THEN LINE(81,120)-(80+G,128),PSET,[255,0,0],BF
  49. 10490    IF 0<R THEN LINE(81,132)-(80+R,140),PSET,[0,255,0],BF
  50. 10500    IF 0<B THEN LINE(81,144)-(80+B,152),PSET,[0,0,255],BF
  51. 10510    LINE(120,120)-STEP(64,32),PSET,[G*8,R*8,B*8],BF
  52. 10520    IRO=1': G=0: R=0: B=0********
  53. 10530    WHILE INKEY$><"": WEND: IN$=""
  54. 10540    WHILE IN$="": IN$=INKEY$: WEND
  55. 10550    IF IN$=CHR$(&H1E) THEN
  56. 10560       IRO=IRO-1: IF IRO=0 THEN IRO=1
  57. 10570       LOCATE 6,IRO+9 : PRINT "*"
  58. 10580       LOCATE 6,IRO+10: PRINT " "
  59. 10590    ENDIF
  60. 10600    IF IN$=CHR$(&H1F) THEN
  61. 10610       IRO=IRO+1: IF IRO=4 THEN IRO=3
  62. 10620       LOCATE 6,IRO+9 : PRINT "*"
  63. 10630       LOCATE 6,IRO+8 : PRINT " "
  64. 10640    ENDIF
  65. 10650    IF IN$=CHR$(&H1C) THEN
  66. 10660       IF IRO=1 THEN
  67. 10670          G=G+1: IF G=32 THEN G=31
  68. 10680          LOCATE 15,10: PRINT USING "##";G
  69. 10690          LINE(71,120)-STEP(8,8),PSET,[G*8,0,0],BF
  70. 10700          LINE(80+G,120)-STEP(0,8),PSET,[255,0,0]
  71. 10710          LINE(120,120)-STEP(64,32),PSET,[G*8,R*8,B*8],BF
  72. 10720       ENDIF
  73. 10730       IF IRO=2 THEN
  74. 10740          R=R+1: IF R=32 THEN R=31
  75. 10750          LOCATE 15,11: PRINT USING "##";R
  76. 10760          LINE(71,132)-STEP(8,8),PSET,[0,R*8,0],BF
  77. 10770          LINE(80+R,132)-STEP(0,8),PSET,[0,255,0]
  78. 10780          LINE(120,120)-STEP(64,32),PSET,[G*8,R*8,B*8],BF
  79. 10790       ENDIF
  80. 10800       IF IRO=3 THEN
  81. 10810          B=B+1: IF B=32 THEN B=31
  82. 10820          LOCATE 15,12: PRINT USING "##";B
  83. 10830          LINE(71,144)-STEP(8,8),PSET,[0,0,B*8],BF
  84. 10840          LINE(80+B,144)-STEP(0,8),PSET,[0,0,255]
  85. 10850          LINE(120,120)-STEP(64,32),PSET,[G*8,R*8,B*8],BF
  86. 10860       ENDIF
  87. 10870    ENDIF
  88. 10880    IF IN$=CHR$(&H1D) THEN
  89. 10890       IF IRO=1 THEN
  90. 10900          G=G-1: IF G=-1 THEN G=0
  91. 10910          LOCATE 15,10: PRINT USING "##";G
  92. 10920          LINE(71,120)-STEP(8,8),PSET,[G*8,0,0],BF
  93. 10930          LINE(80+G+1,120)-STEP(0,8),PSET,[31,0,0]
  94. 10940          LINE(120,120)-STEP(64,32),PSET,[G*8,R*8,B*8],BF
  95. 10950       ENDIF
  96. 10960       IF IRO=2 THEN
  97. 10970          R=R-1: IF R=-1 THEN R=0
  98. 10980          LOCATE 15,11: PRINT USING "##";R
  99. 10990          LINE(71,132)-STEP(8,8),PSET,[0,R*8,0],BF
  100. 11000          LINE(80+R+1,132)-STEP(0,8),PSET,[0,31,0]
  101. 11010          LINE(120,120)-STEP(64,32),PSET,[G*8,R*8,B*8],BF
  102. 11020       ENDIF
  103. 11030       IF IRO=3 THEN
  104. 11040          B=B-1: IF B=-1 THEN B=0
  105. 11050          LOCATE 15,12: PRINT USING "##";B
  106. 11060          LINE(71,144)-STEP(8,8),PSET,[0,0,B*8],BF
  107. 11070          LINE(80+B+1,144)-STEP(0,8),PSET,[0,0,31]
  108. 11080          LINE(120,120)-STEP(64,32),PSET,[G*8,R*8,B*8],BF
  109. 11090       ENDIF
  110. 11100    ENDIF
  111. 11110    IF IN$><CHR$(&H0D) THEN 10530
  112. 11120    LOCATE 6,IRO+9: PRINT " "
  113. 11130    GB=G: RB=R: BB=B
  114. 11140    J=14: MOJI$="ii) グラデーションタイプの設定  [ 1:明  2:暗 ]": W=1
  115. 11150    GOSUB *PRINTER
  116. 11160    LINE(100,178)-(228,178),PSET,[127,127,127],,&H6666
  117. 11170    LINE(100,190)-(228,190),PSET,[127,127,127],,&H6666
  118. 11180    LINE(100,202)-(228,202),PSET,[127,127,127],,&H6666
  119. 11190    LINE(100,189)-(103,191),PSET,[G*8,R*8,B*8],BF
  120. 11200    LINE(100,180)-(227,188),PSET,[127,127,127],BF
  121. 11210    LINE(100,192)-(227,200),PSET,[127,127,127],BF
  122. 11220    LOCATE 8,15: PRINT "1 : 基本色⇔白"
  123. 11230    D1=31
  124. 11240    IF G<D1 THEN D1=G
  125. 11250    IF R<D1 THEN D1=R
  126. 11260    IF B<D1 THEN D1=B
  127. 11270    FOR GRAD=D1 TO 31
  128. 11280       GRADG=8*(G+FIX((GRAD-D1)*(32-G)/(32-D1)))
  129. 11290       GRADR=8*(R+FIX((GRAD-D1)*(32-R)/(32-D1)))
  130. 11300       GRADB=8*(B+FIX((GRAD-D1)*(32-B)/(32-D1)))
  131. 11310       LINE(100+4*(GRAD-D1),180)-STEP(3,8),PSET,[GRADG,GRADR,GRADB],BF
  132. 11320    NEXT
  133. 11330    LOCATE 8,16: PRINT "2 : 基本色⇔黒"
  134. 11340    D2=0
  135. 11350    IF D2<G THEN D2=G
  136. 11360    IF D2<R THEN D2=R
  137. 11370    IF D2<B THEN D2=B
  138. 11380    FOR GRAD=0 TO D2
  139. 11390       GRADG=8*(G-FIX(GRAD*(G+1)/(D2+1)))
  140. 11400       GRADR=8*(R-FIX(GRAD*(R+1)/(D2+1)))
  141. 11410       GRADB=8*(B-FIX(GRAD*(B+1)/(D2+1)))
  142. 11420       LINE(100+4*GRAD,192)-STEP(3,8),PSET,[GRADG,GRADR,GRADB],BF
  143. 11430    NEXT
  144. 11440    WHILE INKEY$><"": WEND: IN$=""
  145. 11450    WHILE IN$="": IN$=INKEY$: WEND
  146. 11460    IN=VAL(IN$)
  147. 11470    IF IN=1 THEN GRADT=1 
  148. 11480    IF IN=2 THEN GRADT=2
  149. 11490    IF IN=0 OR 3<IN THEN 11440
  150. 11500    IF IN=3 THEN END
  151. 11510    IF GRADT=1 THEN
  152. 11520       COLOR 4
  153. 11530       J=17: MOJI$="    基本色⇔白": W=100
  154. 11540       GOSUB *PRINTER
  155. 11550       COLOR 7
  156. 11560    ENDIF
  157. 11570    IF GRADT=2 THEN
  158. 11580       COLOR 4
  159. 11590       J=17: MOJI$="    基本色⇔黒": W=100
  160. 11600       GOSUB *PRINTER
  161. 11610       COLOR 7
  162. 11620    ENDIF
  163. 11630    IN=1
  164. 11640 ENDIF
  165. 11650 IF IN=2 THEN
  166. 11660    MODE=0: GRADT=0
  167. 11670    COLOR 4
  168. 11680    J=7: MOJI$="    ランダム多色": W=100
  169. 11690    GOSUB *PRINTER
  170. 11700    COLOR 7
  171. 11710 ENDIF
  172. 11720 CLS: CONSOLE 0,20,0
  173. 11730 IF JIKKOU=1 THEN
  174. 11740    MOJI$="実行モード  [ 1:消去  2:継続  3:上塗 ]"
  175. 11750    J=2: W=10: GOSUB *PRINTER
  176. 11760    WHILE INKEY$><"": WEND: IN$=""
  177. 11770    WHILE IN$="": IN$=INKEY$: WEND
  178. 11780    IN=VAL(IN$)
  179. 11790    IF IN=0 OR 4<IN THEN 11760
  180. 11800    IF IN=4 THEN END
  181. 11810    COLOR 4
  182. 11820    IF IN=1 THEN J=3: MOJI$="消去後描画": W=10: GOSUB *PRINTER
  183. 11830    IF IN=2 THEN J=3: MOJI$="描画跡継続描画": W=10: GOSUB *PRINTER
  184. 11840    IF IN=3 THEN J=3: MOJI$="描画跡上塗描画": W=10: GOSUB *PRINTER
  185. 11850    COLOR 7
  186. 11860    JMODE=IN
  187. 11870 ENDIF
  188. 11880 J=17: MOJI$="描画中、実行キーで描画を中止します.": W=10
  189. 11890 GOSUB *PRINTER
  190. 11900 J=18: MOJI$="描画に入ります.  [ 1:描画  2:設定 ]": W=1
  191. 11910 GOSUB *PRINTER
  192. 11920 WHILE INKEY$><"": WEND: IN$=""
  193. 11930 WHILE IN$="": IN$=INKEY$: WEND
  194. 11940 IN=VAL(IN$)
  195. 11950 IF IN=0 OR 3<IN THEN 11920
  196. 11960 IF IN=2 THEN CLS: GOTO *設定
  197. 11970 IF IN=3 THEN END
  198. 11980 CLS
  199. 11990 GOSUB *DRAW
  200. 12000 GET@A(0,0)-(319,239),TIFF
  201. 12010 WINDOW(0,0)-(319,239)
  202. 12020 FOR I=0 TO 239
  203. 12030    LINE(0,I)-(319,I),XOR,[255,255,255]
  204. 12040    WAIT 1
  205. 12050 NEXT
  206. 12060 FOR I=239 TO 0 STEP -1
  207. 12070    LINE(0,I)-(319,I),PSET,[0,0,0]
  208. 12080 NEXT
  209. 12090 J=2: MOJI$="画像の保存  [ 1:する  2:しない ]": W=1
  210. 12100 GOSUB *PRINTER
  211. 12110 WHILE INKEY$><"": WEND: IN$=""
  212. 12120 WHILE IN$="": IN$=INKEY$: WEND
  213. 12130 IN=VAL(IN$)
  214. 12140 IF IN=0 OR 3<IN THEN 12110
  215. 12150 IF IN=3 THEN END
  216. 12160 IF IN=1 THEN
  217. 12170    COLOR 4
  218. 12180    J=3: MOJI$="保存する": W=10
  219. 12190    GOSUB *PRINTER
  220. 12200    COLOR 7
  221. 12210    FILE_NB=FILE_N
  222. 12220    IF SYSERR=64 THEN
  223. 12230       SYSERR=0
  224. 12240       CLS 5
  225. 12250       COLOR 4
  226. 12260       J=6: MOJI$="ファイル名を変更します.": W=200
  227. 12270       GOSUB *PRINTER
  228. 12280       COLOR 7
  229. 12290       J=6: MOJI$="                       ": W=1
  230. 12300       GOSUB *PRINTER
  231. 12310    ENDIF
  232. 12320    FILE_N=FILE_N+1
  233. 12330    FILE_N$="TIFF"+RIGHT$(STR$(FILE_N),KLEN(STR$(FILE_N))-1)+".TIF"
  234. 12340    MOJI$=FILE_N$+"  [ 1:保存  2:別の  3:取消 ]"
  235. 12350    J=5: W=1: GOSUB *PRINTER
  236. 12360    WHILE INKEY$><"": WEND: IN$=""
  237. 12370    WHILE IN$="": IN$=INKEY$: WEND
  238. 12380    IN=VAL(IN$)
  239. 12390    IF IN=0 OR 4<IN THEN 12360
  240. 12400    IF IN=4 THEN END
  241. 12410    COLOR 4
  242. 12420    IF IN=1 THEN J=6: MOJI$="保存します    ": W=50: GOSUB *PRINTER
  243. 12430    IF IN=2 THEN J=6: MOJI$="別のファイル名": W=1 : GOSUB *PRINTER
  244. 12440    IF IN=3 THEN J=6: MOJI$="取消          ": W=10: GOSUB *PRINTER
  245. 12450    COLOR 7
  246. 12460    IF IN=1 THEN
  247. 12470       PUT@A(0,0)-(319,239),TIFF
  248. 12480       SAVE@ FILE_N$,(0,0)-(319,239),,1
  249. 12490       CLS 5
  250. 12500    ENDIF
  251. 12510    IF IN=2 THEN 12220
  252. 12520    IF IN=3 THEN FILE_N=FILE_NB
  253. 12530    IN=1
  254. 12540 ENDIF
  255. 12550 IF IN=2 THEN
  256. 12560    COLOR 4
  257. 12570    J=3: MOJI$="保存しない": W=10
  258. 12580    GOSUB *PRINTER
  259. 12590    COLOR 7
  260. 12600 ENDIF
  261. 12610 J=18: MOJI$="終了  [ 1:する(TownsOS)  2:しない(GRAMIS) ]": W=1
  262. 12620 GOSUB *PRINTER
  263. 12630 WHILE INKEY$><"": WEND: IN$=""
  264. 12640 WHILE IN$="": IN$=INKEY$: WEND
  265. 12650 IN=VAL(IN$)
  266. 12660 IF IN=0 OR 3<IN THEN 12630
  267. 12670 IF IN=1 OR IN=3 THEN END
  268. 12680 CLS: GOTO *設定
  269. 12690 '--------------------------------------------------------------------
  270. 12700 *DRAW
  271. 12710 WINDOW(1,1)-(320,240)
  272. 12720 PMG=0: PMR=0: PMB=0: PM=0
  273. 12730 IF GRADT=1 THEN GRAD=D1
  274. 12740 IF GRADT=2 THEN GRAD=0
  275. 12750 IF JMODE=1 OR JMODE=3 THEN
  276. 12760    ERASE F
  277. 12770    DIM F(321,241)
  278. 12780 ENDIF
  279. 12790 FOR X=0 TO 321
  280. 12800    F(X,0)=1: F(X,241)=1
  281. 12810 NEXT
  282. 12820 FOR Y=0 TO 241
  283. 12830    F(0,Y)=1: F(321,Y)=1
  284. 12840 NEXT
  285. 12850 IF JMODE=2 OR JMODE=3 THEN PUT@A(0,0)-(319,239),TIFF
  286. 12860 X=INT(RND*320)+1: Y=INT(RND*240)+1
  287. 12870 IF MODE=0 THEN
  288. 12880    G=INT(RND*32)*8: R=INT(RND*32)*8: B=INT(RND*32)*8
  289. 12890 ENDIF
  290. 12900 F(X,Y)=1
  291. 12910 WHILE INKEY$><"": WEND: IN$=""
  292. 12920 WHILE IN$=""
  293. 12930    IN$=INKEY$
  294. 12940    D=INT(RND*8)+1
  295. 12950    ON D GOSUB *D1,*D2,*D3,*D4,*D5,*D6,*D7,*D8
  296. 12960    IF DD=0 THEN
  297. 12970          N=0
  298. 12980          IF MODE=0 THEN
  299. 12990             IF PMG=0 THEN
  300. 13000                   IF 240<G THEN PMG=1 ELSE G=G+8
  301. 13010                ELSE
  302. 13020                   IF G<8 THEN PMG=0 ELSE G=G-8
  303. 13030             ENDIF
  304. 13040             IF PMR=0 THEN
  305. 13050                   IF 240<R THEN PMR=1 ELSE R=R+8
  306. 13060                ELSE
  307. 13070                   IF R<8 THEN PMR=0 ELSE R=R-8
  308. 13080             ENDIF
  309. 13090             IF PMB=0 THEN
  310. 13100                   IF 240<B THEN PMB=1 ELSE B=B+8
  311. 13110                ELSE
  312. 13120                   IF B<8 THEN PMB=0 ELSE B=B-8
  313. 13130             ENDIF
  314. 13140          ENDIF
  315. 13150          IF MODE=1 AND GRADT=1 THEN
  316. 13160             IF PM=0 THEN
  317. 13170                   IF 30<GRAD THEN PM=1 ELSE GRAD=GRAD+1
  318. 13180                ELSE
  319. 13190                   IF GRAD<D1+1 THEN PM=0 ELSE GRAD=GRAD-1
  320. 13200             ENDIF
  321. 13210             GRADG=GB+FIX((GRAD-D1)*(32-GB)/(32-D1))
  322. 13220             GRADR=RB+FIX((GRAD-D1)*(32-RB)/(32-D1))
  323. 13230             GRADB=BB+FIX((GRAD-D1)*(32-BB)/(32-D1))
  324. 13240             G=GRADG*8: R=GRADR*8: B=GRADB*8
  325. 13250          ENDIF
  326. 13260          IF MODE=1 AND GRADT=2 THEN
  327. 13270             IF PM=0 THEN
  328. 13280                   IF D2-1<GRAD THEN PM=1 ELSE GRAD=GRAD+1
  329. 13290                ELSE
  330. 13300                   IF GRAD<1 THEN PM=0 ELSE GRAD=GRAD-1
  331. 13310             ENDIF
  332. 13320             GRADG=GB-FIX(GRAD*(GB+1)/(D2+1))
  333. 13330             GRADR=RB-FIX(GRAD*(RB+1)/(D2+1))
  334. 13340             GRADB=BB-FIX(GRAD*(BB+1)/(D2+1))
  335. 13350             G=GRADG*8: R=GRADR*8: B=GRADB*8
  336. 13360          ENDIF
  337. 13370          PSET(X,Y),[G,R,B]
  338. 13380       ELSE
  339. 13390          N=N+1
  340. 13400    ENDIF
  341. 13410    IF 20<N THEN
  342. 13420       RANDOMIZE DATE*100000+TIME
  343. 13430       X=INT(RND*320)+1: Y=INT(RND*240)+1
  344. 13440       IF MODE=0 THEN
  345. 13450          G=INT(RND*32)*8: R=INT(RND*32)*8: B=INT(RND*32)*8
  346. 13460       ENDIF
  347. 13470       IF MODE=1 THEN
  348. 13480          G=GB*8: R=RB*8: B=BB*8
  349. 13490       ENDIF
  350. 13500    ENDIF
  351. 13510 WEND
  352. 13520 IF IN$><CHR$(&H0D) THEN 12910
  353. 13530 JIKKOU=1
  354. 13540 RETURN
  355. 13550 '--------------------------------------------------------------------
  356. 13560 *PRINTER
  357. 13570  MOJI=KLEN(MOJI$): I=0
  358. 13580  FOR N=1 TO MOJI
  359. 13590     LOCATE I,J: PRINT KMID$(MOJI$,N,1)
  360. 13600     I=I+KTYPE(MOJI$,N)+1
  361. 13610     WAIT 1
  362. 13620  NEXT
  363. 13630  WAIT W
  364. 13640 RETURN
  365. 13650 *D1
  366. 13660  X=X+1
  367. 13670  GOSUB *DD
  368. 13680  IF DD=0 THEN RETURN
  369. 13690  X=X-1
  370. 13700  RETURN
  371. 13710 *D2
  372. 13720  X=X+1: Y=Y-1
  373. 13730  GOSUB *DD
  374. 13740  IF DD=0 THEN RETURN
  375. 13750  X=X-1: Y=Y+1
  376. 13760  RETURN
  377. 13770 *D3
  378. 13780  Y=Y-1
  379. 13790  GOSUB *DD
  380. 13800  IF DD=0 THEN RETURN
  381. 13810  Y=Y+1
  382. 13820  RETURN
  383. 13830 *D4
  384. 13840  X=X-1: Y=Y-1
  385. 13850  GOSUB *DD
  386. 13860  IF DD=0 THEN RETURN
  387. 13870  X=X+1: Y=Y+1
  388. 13880  RETURN
  389. 13890 *D5
  390. 13900  X=X-1
  391. 13910  GOSUB *DD
  392. 13920  IF DD=0 THEN RETURN
  393. 13930  X=X+1
  394. 13940  RETURN
  395. 13950 *D6
  396. 13960  X=X-1: Y=Y+1
  397. 13970  GOSUB *DD
  398. 13980  IF DD=0 THEN RETURN
  399. 13990  X=X+1: Y=Y-1
  400. 14000  RETURN
  401. 14010 *D7
  402. 14020  Y=Y+1
  403. 14030  GOSUB *DD
  404. 14040  IF DD=0 THEN RETURN
  405. 14050  Y=Y-1
  406. 14060  RETURN
  407. 14070 *D8
  408. 14080  X=X+1: Y=Y+1
  409. 14090  GOSUB *DD
  410. 14100  IF DD=0 THEN RETURN
  411. 14110  X=X-1: Y=Y-1
  412. 14120  RETURN
  413. 14130 *DD
  414. 14140  DD=0
  415. 14150  IF F(X,Y)=0 THEN F(X,Y)=1 ELSE DD=1
  416. 14160  RETURN
  417. 14170 *SYSERR
  418. 14180  SYSERR=ERR
  419. 14190  IF ERR=63 THEN RESUME NEXT
  420. 14200  IF ERR=64 THEN RESUME 12220
  421. 14210  ON ERROR GOTO 0
  422. 14220  CLS
  423. 14230  PRINT "エラーが発生しました."
  424. 14240  PRINT "エラー番号 :";ERR
  425. 14250  PRINT
  426. 14260  IF ERR=7 THEN
  427. 14270     PRINT "メモリが足りないダス."
  428. 14280     PRINT
  429. 14290  ENDIF
  430. 14300  PRINT "どれかキーを押してください..."
  431. 14310  WHILE INKEY$><"" : WEND: IN$=""
  432. 14320  WHILE IN$="": IN$=INKEY$: WEND
  433.